<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>4.2. 文字菜单的制作</title>
<link rel="stylesheet" href="css/style.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.71.1">
<link rel="start" href="index.html" title="KCDDP KAGeXpress 3.0 使用手册">
<link rel="up" href="ch04.html" title="第 4 章 KAGeXpress高级技巧">
<link rel="prev" href="ch04.html" title="第 4 章 KAGeXpress高级技巧">
<link rel="next" href="ch05.html" title="第 5 章 KAGeXpress常用指令参考">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr><th colspan="3" align="center">4.2. 文字菜单的制作</th></tr>
<tr>
<td width="20%" align="left">
<a accesskey="p" href="ch04.html">上一页</a> </td>
<th width="60%" align="center">第 4 章 KAGeXpress高级技巧</th>
<td width="20%" align="right"> <a accesskey="n" href="ch05.html">下一页</a>
</td>
</tr>
</table>
<hr>
</div>
<div class="sect1" lang="zh-CN">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="ch04-2"></a>4.2. 文字菜单的制作</h2></div></div></div>
<p>本节主要研究利用KAG指令制作简单菜单的方法。</p>
<div class="sect2" lang="zh-CN">
<div class="titlepage"><div><div><h3 class="title">
<a name="ch04-2-1"></a>4.2.1. locate、nowait与s指令</h3></div></div></div>
<p>locate指令可以把文字层定位到层上的任何位置。配合KAGeXpress预设的menul文字层，对于制作简单的文字菜单非常合适。</p>
<p>locate指令主要有x、y两个属性。在menul模式下，locate属性之后的剧本文字将以locate指令指定的位置为起点描绘。</p>
<p>描绘菜单的文字一般不需要像剧本文字一样一个个显示，所以，这个时候可以使用nowait指令。</p>
<p>在nowait与endnowait两个指令之间，所有的文字描绘都将是瞬时的。但是，请不要忘记在菜单命令的结尾加上endnowait。</p>
<p>菜单描绘之后，如果需要系统停止执行剧本，等待菜单中的某一项被选中，则可以使用s命令。</p>
</div>
<div class="sect2" lang="zh-CN">
<div class="titlepage"><div><div><h3 class="title">
<a name="ch04-2-2"></a>4.2.2. 简单的菜单制作</h3></div></div></div>
<p>利用menul、link、locate、s和nowait命令，我们可以制作简单的菜单。</p>
<p>在开始描绘菜单之前，可以先用bg等命令，描绘出菜单的背景图。</p>
<p>首先，利用menul，将文字层设置为全屏。这样方便我们定位。然后，使用nowait命令，进入文字瞬间描绘模式。</p>
<p>然后，使用locate定位每一个菜单项的位置。使用link和endlink指定菜单项被选中后的操作，然后利用剧本文字写出菜单项的内容。</p>
<p>在完成菜单描绘之后，使用endnowait命令结束瞬间描绘模式，以免对之后的剧本执行造成影响，然后使用s命令等待选择。</p>
<div class="example">
<a name="ex4-2-1"></a><p class="title"><b>例 4.5. 简单的菜单描绘（来自KAGeXpress自带样例“超分支样例”）</b></p>
<div class="example-contents">
<pre class="programlisting">
*menu
@bg storage=menu time=2000
@wait time=100
@font size=32
@nowait
@locate x=120 y=180
@link storage=script.ks target=*start
新游戏
@endlink
@locate x=120 y=250
@link exp="kag.close()"
结束游戏
@endlink
@resetfont
@endnowait
@s
					</pre>
<p>本例的效果可以参见KAGeXpress自带样例。</p>
</div>
</div>
<br class="example-break"><div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Tip">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[提示]" src="images/tip.png"></td>
<th align="left">提示</th>
</tr>
<tr><td align="left" valign="top"><p>出于结构的考虑，我们建议不要把标题菜单等内容与剧本放在同一个剧本文件中。例如上例中可以看出，剧本内容就内容放在了script.ks中。</p></td></tr>
</table></div>
</div>
</div>
<div class="navfooter">
<hr>
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left">
<a accesskey="p" href="ch04.html">上一页</a> </td>
<td width="20%" align="center"><a accesskey="u" href="ch04.html">上一级</a></td>
<td width="40%" align="right"> <a accesskey="n" href="ch05.html">下一页</a>
</td>
</tr>
<tr>
<td width="40%" align="left" valign="top">第 4 章 KAGeXpress高级技巧 </td>
<td width="20%" align="center"><a accesskey="h" href="index.html">起始页</a></td>
<td width="40%" align="right" valign="top"> 第 5 章 KAGeXpress常用指令参考</td>
</tr>
</table>
</div>
</body>
</html>
